/************************************************************************************************/
/* Copyright (C), 2016-2017, Allwinner Tech. Co., Ltd.                                          */
/************************************************************************************************/
/**
 * @file menu.h
 * @brief 为应用顶层菜单式的sample功能实现.
 * @author id: wangguixing
 * @version v0.1 create
 * @date 2017-04-14
 */

#ifndef _MENU_H_
#define _MENU_H_

/************************************************************************************************/
/*                                      Include Files                                           */
/************************************************************************************************/
/* None */


#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

/************************************************************************************************/
/*                                     Macros & Typedefs                                        */
/************************************************************************************************/
typedef int (*MenuCtrlFunction)(void *pData, char *pTitle);


/************************************************************************************************/
/*                                    Structure Declarations                                    */
/************************************************************************************************/
typedef struct tag_MENU_INODE {
    char            *title;
    MenuCtrlFunction func;
    void            *data;
    struct tag_MENU_INODE *subMenu;
} MENU_INODE, *PMENU_INODE;


/************************************************************************************************/
/*                                      Global Variables                                        */
/************************************************************************************************/
/* None */


/************************************************************************************************/
/*                                    Function Declarations                                     */
/************************************************************************************************/

int RunMenuCtrl(PMENU_INODE pMenuList);


/**
 * @brief 公共函数,退出本级菜单函数 .guixing
 * @param
 * - void
 * @return
 *  - SUCCESS 0
 *  - FAIL   -1
 */
int ExitCurrentMenuLevel(void *pData, char *pTitle);


#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif

#endif /* _MENU_H_ */
